extends SimpleHealthBar
class_name EnemyHealthBar

# 敌人专用血条组件
# 与玩家血条不同的外观和行为

func _ready():
	# 调用父类设置
	super._ready()

func setup_health_bar():
	# 敌人血条的特殊配置（在调用父类之前设置）
	bar_width = 24  # 增加宽度，让敌人血条更明显
	bar_height = 3  # 增加高度，让血条更容易看清
	
	# 调用父类设置
	super.setup_health_bar()
	
	# 敌人血条的特殊位置调整
	position = Vector2(-bar_width/2, -bar_height - 6)  # 敌人血条离角色近一点
	
	# 敌人血条的特殊外观
	if background_sprite:
		background_sprite.modulate = Color(0.2, 0.2, 0.2, 0.9)  # 更深的背景
	
	# 初始状态隐藏
	visible = false

func get_health_color() -> Color:
	var health_ratio = float(current_health) / float(max_health) if max_health > 0 else 0.0
	
	# 敌人血条使用不同的颜色方案
	if health_ratio > 0.7:
		return Color(1.0, 0.3, 0.3)  # 橙红色（敌人特色）
	elif health_ratio > 0.4:
		return Color(1.0, 0.6, 0.0)  # 橙色
	else:
		return Color(0.8, 0.0, 0.0)  # 深红色

# 敌人血条显示逻辑：受伤时显示，短时间后隐藏
func show_health_bar():
	visible = true
	modulate.a = 0.0
	
	var tween = create_tween()
	tween.tween_property(self, "modulate:a", 1.0, 0.2)

# 敌人血条隐藏逻辑：比玩家血条隐藏得更快
func hide_health_bar(delay: float = 2.0):  # 默认2秒后隐藏
	var tween = create_tween()
	tween.tween_interval(delay)
	tween.tween_property(self, "modulate:a", 0.0, 0.3)
	tween.tween_callback(func(): visible = false)

# 重写animate_damage方法，添加敌人特有的效果
func animate_damage():
	if not health_sprite:
		return
	
	var tween = create_tween()
	# 敌人受伤时血条会闪烁更明显
	tween.tween_property(health_sprite, "modulate", Color.WHITE, 0.1)
	tween.tween_property(health_sprite, "modulate", get_health_color(), 0.1)
	tween.tween_property(health_sprite, "modulate", Color.WHITE, 0.1)
	tween.tween_property(health_sprite, "modulate", get_health_color(), 0.1) 
